package main

import (
	"strings"
)

type StringManipulator struct {
	originalStr string
	maxLine     int
}

// 创建一个新的字符串操作器
func NewStringManipulator(originalStr string, max int) *StringManipulator {
	return &StringManipulator{
		originalStr: originalStr,
		maxLine:     max,
	}
}

// 追加字符串
func (sm *StringManipulator) AppendString(appendStr string) {
	// 检查原始字符串中的换行符数量
	newlineCount := strings.Count(sm.originalStr, "\n")

	// 如果原始字符串中的换行符数量已经达到了最大限制，删除之前的字符串
	if newlineCount >= sm.maxLine {
		// 找到第 20 个换行符的索引位置
		index := strings.Index(sm.originalStr, "\n")
		// 删除第一个换行符及其之前的内容
		sm.originalStr = sm.originalStr[index+1:]
	}

	// 追加新的字符串
	sm.originalStr += appendStr
}

// 获取最终字符串
func (sm *StringManipulator) GetString() string {
	return sm.originalStr
}
